package com.lufei.message_system.Service;

import com.lufei.message_system.Data.PageResult;
import com.lufei.message_system.Data.Result;
import com.lufei.message_system.Data.TestResult;
import com.lufei.message_system.Data.TestResultVD.*;

import java.util.List;

public interface TestResultService {
    // 创建新的测试结果记录
    Result<TestResultVO> createTestResult(TestResultCreateDTO createDTO);

    // 根据ID获取单个测试结果
    Result<TestResultVO> getTestResultById(Long id);

    // 根据ID删除测试结果
    Result<Boolean> deleteTestResultById(Long id);

    // 根据ID更新测试结果
    Result<TestResultVO> updateTestResultById(TestResultUpdateDTO updateDTO);

    // 根据用户ID获取该用户的所有测试结果
    Result<List<TestResultVO>> getTestResultsByUserId(String studentId);

    // 根据用户ID删除该用户的所有测试结果
    Result<Boolean> deleteTestResultsByUserId(String studentId);

    // 根据用户ID批量更新该用户的测试结果
    Result<List<TestResultVO>> updateTestResultsByUserId(String studentId, TestResultUpdateDTO updateDTO);

    // 分页查询测试结果，支持多条件筛选
    PageResult<TestResultVO> queryTestResults(TestResultQueryDTO queryDTO);
}